#include<iostream>
#include <unistd.h>
#include<signal.h>
#include<vector>
#include<functional>
using namespace std;

using func_t = function<void()>;

vector<func_t> gfuncs;
int gcount = 0;

int main()
{
    gfuncs.push_back([](){
        cout<<"我是日志任务"<<endl;
    });
    gfuncs.push_back([](){
        cout<<"我是下载任务"<<endl;
    });
    gfuncs.push_back([](){
        cout<<"我是数据库任务"<<endl;
    });

    alarm(1);
    signal(SIGALRM, [](int singno){
        for(auto& f : gfuncs)
            f();
            printf("gcount=%d\n",gcount);
            alarm(1);
        });

    while(1)    gcount++;
    return 0;
}









// void Hander(int signo)
// {
//     cout<<"The signal number is:"<<signo<<endl;
// }
// int count = 0;
// void die(int signo)
// {
//     cout<<"count ant:"<< count<<' '<<signo<<endl;
//     exit(0);
// }

// int main()
// {
//     alarm(1);
//     signal(SIGALRM,die);
//     while(1)
//     {
//         count++;
//     }
//     // signal(SIGQUIT,Hander);
//     // while(1)
//     // {
//     //     std::cout<<"test"<<endl;
//     //     sleep(1);
//     // }
//     return 0;
// }